/* 
 * File:   Detail.h
 * Author: Elevator
 *
 * Created on July 14, 2013, 4:39 PM
 */

#ifndef DATA_DETAIL_H
#define DATA_DETAIL_H

#include <string>
#include "Common/Common.h"
#include "DetailDef.h"
#include "Rule.h"

namespace data {

	class Detail {
	public:
		Detail(
			std::string id,
			const Transform position,
			const DetailDef* definition,
			const ICollection<Rule>* rules );

		const std::string GetId( ) const {
			return _id;
		}

		const Transform GetPosition( ) const {
			return _position;
		}

		const DetailDef* GetDefinition( ) const {
			return _definition;
		}

		const ICollection<Rule>* GetRules( ) const {
			return _rules;
		}

	private:
		std::string _id;
		Transform _position;
		const DetailDef* _definition;
		const ICollection<Rule>* _rules;
	};
}
#endif	/* DETAIL_H */
